#include "NodoBuffer.h"

#include <iostream>
using namespace std;

NodoBuffer::NodoBuffer(int numBloque, int tamanio, Bytes dato) {

	this->tamanio = tamanio;
	this->numBloque = numBloque;
	this->estado = VACIO;
	setDatos(dato);
}

NodoBuffer::~NodoBuffer() {

}

int NodoBuffer::getNumBloque() const {
	return this->numBloque;
}

bool NodoBuffer::setNumBloque(int numNuevo) {
	this->numBloque = numNuevo;
	return true;
}

estado_buffer NodoBuffer::getEstado() const {
	return this->estado;
}

void NodoBuffer::setEstado(estado_buffer estado) {
	this->estado = estado;
}

bool NodoBuffer::setDatos(Bytes datoNuevo) {

	if (datoNuevo.getTamanio() != this->tamanio) {
		cerr << "NodoBuffer::setDatos: tratando de agregar un dato de tamanio incorrecto" << endl;
	}

	this->datos = datoNuevo;
	return true;
}

Bytes NodoBuffer::getDatos() {
	return this->datos;
}

string NodoBuffer::toString() {

	string buffer = "[";

	buffer += intToString(this->numBloque);

	buffer += "] => " ;

    buffer += this->datos.toString();

    return buffer;
}
